<template>
	<view class="uni-tab-bar">
		<!-- 利用uniapp组件scroll-view横向滑动 -->
		<scroll-view class="uni-swiper-tab" scroll-x>
			<!-- 用block标签(无样式意义,只用于列表渲染) scrollStyle:父级样式设置 -->
			<block v-for="(tab,index) in tabBars" :key="tab.id" :style="scrollStyle">
				<view class="swiper-tab-list" :class="{'active' : tabIndex == index}" @tap="tabtap(index)">
					{{tab.name}}
					<view class="swiper-tab-line"></view>
				</view>
			</block>
		</scroll-view>
	</view>
</template>


<script>
	// 补充知识点:父组件传值给子组件用props;子组件传值给父组件用$emit
	export default {
		name: "tab-slide",
		// 通过props接受父组件传递过来的数据
		props: {
			tabBars: Array,
			tabIndex: Number,
		},
		methods: {
			// 点击切换导航，编写点击事件:(向父组件提交一个事件和值)，在父组件中以@tabtap="tabtap"关联父组件
			tabtap(index) {
				this.$emit('tabtap', index)
			}
		}
	}
</script>


<style scoped>
	/* 给横向滚动加一条下边框 */
	.uni-swiper-tab {
		border-bottom: 1upx solid #EEEEEE;
	}

	/* 设置active时的字体颜色   #343434*/
	.active {
		color: #5598E7;
	}

	/* 设置active和line样式 */
	.active .swiper-tab-line {
		border-bottom: 4upx solid #5598E7;
		width: 70upx;
		margin: auto;
		border-top: 6upx solid #5598E7;
		border-radius: 20upx;
	}
</style>